﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GraphList
{
    public interface IGraph
    {
        void AddVertex(Vertex vertex);

        void AddEdge(Vertex from, Vertex to);

        bool HasEdge(Vertex v1, Vertex v2);

        IList<Vertex> GetAdjacenciesTo(Vertex vertex);

        IDictionary<string,Vertex> Vertices
        {
            get;
        }

        void Unmark();

        void Bfs(Vertex v); // Breath-First-Search

        void Dfs(Vertex v); // Deep-First-Search

        void PrintGraph();

        bool ContainsVertex(string url);
    }
}
